﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using JXT.PrimaryKey.Batman.Collections;
using JXT.PrimaryKey.Batman.Domain.Models;
using JXT.PrimaryKey.Batman.Domain.Specifications;

namespace JXT.PrimaryKey.Batman.Domain.Repositories
{
    public interface ISpecificationRepository<TEntity> : IRepository<TEntity> where TEntity : IEntity
    {
        int Count(ISpecification<TEntity> specification);

        TEntity GetSingle(ISpecification<TEntity> specification);

        IPagedCollection<TEntity> GetList(IPagedSpecification<TEntity> specification);
    }
}
